﻿using System;
using System.Collections.Generic;
using System.Web;
using NHibernate.Mapping.Attributes;

namespace VemTransporte.Models.Basica
{
    [Class(Table="Endereco")]
    public class Endereco
    {
        #region ATRIBUTOS
        private int id;
        private string cep;
        private string logradouro;
        private Bairro _bairro;
        private IList<Usuario> _usuarios;
        private IList<Empresa> _empresas;
        #endregion

        #region PROPRIEDADES
        [Id(Name = "Id", Column="PK_IdEndereco")]
        [Generator(1, Class="native")]
        public virtual int Id
        {
            get { return id; }
            set { id = value; }
        }

        [ManyToOne(Name = "Bairro", Column = "FK_IdBairro", ClassType = typeof(Bairro), Fetch=FetchMode.Join)]
        public virtual Bairro Bairro
        {
            get { return _bairro; }
            set { _bairro = value; }
        }

        [Property(Column = "END_Cep")]
        public virtual string Cep
        {
            get { return cep; }
            set { cep = value; }
        }

        [Property(Column = "END_Logradouro")]
        public virtual string Logradouro
        {
            get { return logradouro; }
            set { logradouro = value; }
        }

        [Bag]
        [Key(1, Column="FK_IdEndereco")]
        [OneToMany(2, ClassType=typeof(Usuario))]/**/
        public virtual IList<Usuario> Usuarios
        {
            get { return this._usuarios; }
            set { this._usuarios = value; }
        }

        [Bag]
        [Key(1, Column = "FK_IdEndereco")]
        [OneToMany(2, ClassType=typeof(Empresa))]/**/
        public virtual IList<Empresa> Empresas
        {
            get { return _empresas; }
            set { _empresas = value; }
        }
        #endregion

        #region CONSTRUTOR
        public Endereco() { }

        #endregion
    }
}